package com.myway.core.spring;

import java.util.Map;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;

/**
 * @ClassName: ContextRefreshed <br/>
 * @Description: TODO <br/>
 * @CreateDate: 2016年4月27日 下午4:28:10 <br/>
 * @author Toby
 * @version V1.0
 */
@Component
public class ContextRefreshed implements ApplicationListener<ContextRefreshedEvent> {

	
	//移动服务器配置信息
	private Map<String,String> cmccMap;
	
	private static final Logger log = Logger.getLogger(ContextRefreshed.class);
	
	@Override
	public void onApplicationEvent(ContextRefreshedEvent event) {
		if (event.getApplicationContext().getParent() == null) {
			//初始化中国移动服务器连接
			initCMCCConnection();
		}
	}
	
	/**
	 * 名称：initCMCCConnection <br/>
	 * 描述：项目启动后连接中国移动mas服务器 <br/>
	 */
	private void initCMCCConnection(){
		/*long mobile = 13679047631L;
		String appID = "api"; // API插件标识ID
		String appPwd = "123456"; // API插件密码
		String content = "2222"; // 短信内容
		String xCode = "4"; // 短信扩展码
		int masApiPort = 61616;
		String masIP = "192.168.11.190";
		SmsApiClient smsApiClient = null;
//		long mobile = 13679047631L;
//		String appID = cmccMap.get("appID");							//应用标示符
//		String appPwd = cmccMap.get("appPwd");							// API插件密码
//		String xCode = cmccMap.get("xCode");							// 短信扩展码
//		int masApiPort = Integer.parseInt(cmccMap.get("masApiPort"));	//服务器端口号	
//		String masIP = cmccMap.get("masIP");							//mas服务器端口号
//		String content = "2222"; 
		// SmsApiClientHandlerImpl是由自己实现的回调信息处理类
		SmsApiClientHandler smsHandler = new SmsApiClientHandlerImpl();
		//******工厂类,创建与mas服务器之间连接的*********//*
		ApiClientFactory acf = new ApiClientFactory();
		//**创建一个连接***//*
		smsApiClient = acf.createSmsApiClient(smsHandler, masIP, masApiPort, appID, appPwd);
		try {
			// 设置是否自动重连到服务器(可以不需要设置)
			smsApiClient.setAutoConnect(true);
			// 设置自动重连服务器相隔时间(单位：秒), 默认为30秒(可以不需要设置)
			smsApiClient.setReConnectInterval(60);
			// 设置与服务连接超时时长，单位： millisecond(可以不需要设置)
			smsApiClient.setConnectTimeout(10);
			// 设置发送超时时长，单位： millisecond(可以不需要设置)
			smsApiClient.setSendTimeout(10);
			// 获得短信群发提交的数量限制
			// 获取网关连接状态(Connect：连接正常, Disconnect： 断连, NotConnect： 没有连接, Other：
			// 其他)
			smsApiClient.start();
			ConnectStatus connectStatus = smsApiClient.getConnStatusIAGW();
			if(ConnectStatus.NotConnect.equals(connectStatus)){
				int ret = smsApiClient.getDestAddrsLimit();
				log.debug("MAS-API短信客户端调用成功");
				log.debug("MAS-API短信客户端一次发送短信限制:"+ret);
				if (!ConnectStatus.Connect.equals(connectStatus)) {
					log.debug("MAS-API短信客户端网关未连接");
					return;
				}
			}else{
				log.debug("MAS-API短信客户端已连接");
			}
		} catch (Exception e) {
			log.error("MAS-API短信客户端调用失败:" + e.getMessage());
			return;
		}
		System.out.println("初始化任务");*/
	}

	public Map<String, String> getCmccMap() {
		return cmccMap;
	}

	public void setCmccMap(Map<String, String> cmccMap) {
		this.cmccMap = cmccMap;
	}
	
	
	
	
	
}
